Hi3521 SDK װԼʹ˵

һ Hi3521_SDK_Vx.x.x.x汾˵
   ״ΰװSDKֱӲο2¡
    
ڶ ״ΰװSDK
1Hi3521 SDKλ
    "Hi3521_V100R001***/01.software/board"Ŀ¼£Կһ Hi3521_SDK_Vx.x.x.x.tgz ļ
ļHi3521

2ѹSDK
    linuxϣһ̨װlinuxPCϣlinuxа汾ԣʹtar -zxf Hi3521_SDK_Vx.x.x.x.tgz 
ѹļԵõһHi3521_SDK_Vx.x.x.xĿ¼

3չSDK
    Hi3521_SDK_Vx.x.x.xĿ¼./sdk.unpack(rootsudoȨִ)չSDKѹŵݣ밴ʾɲ
ҪͨWINDOWSϵͳתSDK./sdk.cleanupSDKݣµĿ¼չ

4linuxϰװ
    1װuclibcע⣬ҪsudoȨ޻rootȨޣ
       Hi3521_SDK_Vx.x.x.x/osdrv/toolchain/arm-hisiv100nptl-linuxĿ¼chmod +x cross.installȻ./cross.installɡ
    2) װglibcע⣬ҪsudoȨ޻rootȨޣ
       Hi3521_SDK_Vx.x.x.x/osdrv/toolchain/arm-hisiv200-linuxĿ¼chmod +x cross.installȻ./cross.installɡ
    3) ִsource /etc/profile װĽűõĻͿЧˣµ½Ҳɡ

5osdrv
    μosdrvĿ¼readme

6SDKĿ¼
Hi3521_SDK_Vx.x.x.x Ŀ¼ṹ£    
    |-- sdk.cleanup                 # SDKű
    |-- sdk.unpack                  # SDKչű
    |-- osdrv                       # ŲϵͳĿ¼
    |   |-- busybox                 # busyboxԴ
    |   |-- drv                     # drvԴ
    |   |-- kernel                  # linuxںԴ
    |   |-- pub                     # õľ񡢹ߡdrv
    |   |-- rootfs_scripts          # rootfsԴ
    |   |-- toolchain               # 
    |   |-- tools                   # linuxԴ
    |   |-- uboot                   # ubootԴ
    |   `-- Makefile                # osdrv Makefile
    |-- package                     # SDKѹĿ¼
    |   |-- osdrv.tgz               # linuxں/uboot/rootfs/toolsԴѹ
    |   |-- mpp.tgz                 # ý崦ƽ̨ѹ
    |   `-- image                   # ɹFLASHдӳļںˡļϵͳ
    |-- scripts                     # shellűĿ¼
    |-- mpp                         # ý崦ƽ̨Ŀ¼
        |-- component               # Դ 
        |-- extdrv                  # 弶ΧԴ
        |-- include                 # ͷļ
        |-- ko                      # ںģ
        |-- lib                     # release汾ԼƵ
        |-- tools                   # ý崦ع
        `-- sample                  # Դ


¡װHi3521DEMO忪
    # ʹõHi3521DEMO壬԰²дu-bootںԼļϵͳ²ʹ¡
    # ͨõĵѾu-bootûеĻҪʹ÷д
    # ϸĲ輰˵μ01.software\board\documentsĿ¼µġLinuxûָϡ
    # ²ĵѾu-boot,ʹдubootkernelrootfsFlashС
    # DemoĬΪSPI Flahs

1tftp
    # ʹtftppackage/image_uclibc(image_glibc)µļtftpĿ¼¡
    
2
    # ϵu-bootserveriptftpipipaddripethaddrMACַ
    setenv serverip xx.xx.xx.xx
    setenv ipaddr xx.xx.xx.xx 
    setenv ethaddr xx:xx:xx:xx:xx:xx
    setenv netmask xx.xx.xx.xx
    setenv gatewayip xx.xx.xx.xx
    ping serveripȷ糩ͨ

3дӳļSPI Flash
    16M SPI FlashΪ
    1ַռ˵
        |      1M       |      4M       |      11M      |
        |---------------|---------------|---------------|
        |     boot      |     kernel    |     rootfs    |

        µĲͼʾĵַռ䣬ҲԸʵе
    2дu-boot
        sf probe 0
        mw.b 82000000 ff 100000
        tftp 0x82000000 u-boot-hi3521_930MHz.bin
        sf probe 0
        sf erase 0 100000
        sf write 82000000 0 100000	
        reset    
    3дں
        mw.b 82000000 ff 400000
        tftp 82000000 uImage
        sf probe 0
        sf erase 100000 400000
        sf write 82000000 100000 400000
    4)дļϵͳ
        mw.b 82000000 ff b00000
        tftp 0x82000000 rootfs_256k.jffs2
        sf erase 500000 b00000
        sf write 82000000 500000 b00000
    5
        setenv bootargs 'mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1M(boot),4M(kernel),11M(rootfs)'
        setenv bootcmd 'sf probe 0;sf read 0x82000000 0x100000 0x400000;bootm 0x82000000'
        sa

4дӳļNAND Flash
    64M Nand FlashΪ
    1ַռ˵
        |      1M       |     15M       |     32M       |         16M            |
        |---------------|---------------|---------------|------------------------|
        |     boot      |    kernel     |    rootfs     |        other           |

        µĲͼʾĵַռ䣬ҲԸʵе
    2дu-boot
        mw.b 82000000 ff 100000
        tftp 82000000 u-boot-hi3521_930MHz.bin
        nand erase 0 100000
        nand write 82000000 0 100000
        reset
    3дں
        mw.b 82000000 ff f00000
        tftp 82000000 uImage
        nand erase 100000 f00000
        nand write 82000000 100000 f00000
    4)дļϵͳ
        mw.b 82000000 ff 2000000
        tftp 82000000 rootfs_2k_1bit.yaffs2
        nand erase 1000000 2000000
        nand write.yaffs 82000000 1000000 95b980    #ע⣺95b980ΪrootfsļʵʴС16ƣ
    5
	setenv bootargs 'mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=yaffs2 mtdparts=hinand:1M(boot),15M(kernel),32M(rootfs),16M(test)'
        setenv bootcmd 'nand read 0x82000000 0x100000 0x500000;bootm 0x82000000'
        sa

    
5ϵͳ
    reset	# ϵͳ

¡ǰ׼

1ܽŸ
    ýҵصĹܽŸömpp/ko_hi3521Ŀ¼µshűãʵֱ޸ģ˽űload3521ãڼmppںģ֮ǰִУ
         mpp֮ܽŸͳһubootãϸ˵μU-bootֲӦÿָϡ
    
¡ʹSDKDEMOп
1Linuxµ
    # 
    ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx;
    ifconfig eth0 xx.xx.xx.xx netmask xx.xx.xx.xx;
    route add default gw xx.xx.xx.xx
    # Ȼpingһ⣬罫

2ʹNFSļϵͳп
    # ڿ׶ΣƼʹNFSΪʡȥдļϵͳĹ
    # NFSļϵͳĲ
    mount -t nfs -o nolock -o tcp xx.xx.xx.xx:/your-nfs-path /mnt
    # ȻͿ/mntĿ¼·ʷϵļп

3telnet
    #  telnetd& ͿtelnetȻʹtelnet¼塣

4MPPҵ
    # ڵlinuxϵͳ£mpp/ko_Hi3521Ŀ¼KO
    cd mpp/ko_hi3521
    ./load3521 -i
    
    # sampleĿ¼ִӦ(sampleҪڷϳɹ)
    cd mpp/sample/vio
    ./sample_vio 0
    
 ַռʹ
1DDRڴ˵
    1DDRڴУһɲϵͳΪOSڴ棻һMMZģýҵ񵥶ʹãΪMMZڴ档
    2OSڴʼַΪ0x80000000ڴСͨbootargsãеsetenv bootargs 'mem=64M ... ',ʾϵͳڴΪ64MԸʵе
    3MMZڴMMZںģmpp/ko_hi35xxĿ¼µmmz.kommzģʱͨģָʼַС磺
    insmod mmz.ko mmz=anonymous,0,0x84000000,442M:jpeg,0,0x9fa00000,5M anony=1 || report_error
    ʾmmzһΪanonymousʼַΪ0x84000000СΪ442MΪjpegʼַΪ0x9fa00000СΪ5M
    ͨ޸mpp/ko_HI35XXĿ¼load3531űеmmzģ޸ʼַܴС
    4עMMZڴַΧOSڴص

2DEMODDRڴʾ
    1) Ϊ512MBytesDDRڴΪΪݱĵSDKĬõõڴʾͼ
    
    DDR:                                                           
    
    -----|-------|  0x80000000   # Memory managed by OS.              
    64M  | OS    |                                                 
         |       |                                                 
    -----|-------|  0x84000000   # Memory managed by MMZ block anonymous.          
    442M | MMZ   |                                                 
         |       |                                                 
    -----|-------|  0x9fa00000   # Memory managed by MMZ block jpeg.                       
    5M   |       |                                                 
         |       |                                                 
    -----|-------|  0x9FF00000   # Not used.                         
    1M   |       |                                                 
         |       |                                                 
    -----|-------|  0xA0000000   # End of DDR.                     
    
    ע⣺
	1ûʱҪOSĹڴΪ64Msetenv bootargs 'mem=64M ...	  
	2ϵͳload3521ĽűmmzĹڴΪ447Minsmod mmz.ko mmz=anonymous,0,0x84000000,442M:jpeg,0,0x9fa00000,5M anony=1 || report_error    
